package com.dexing.t20221218;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 *  为了解新学期学生暴涨的问题,小乐村要建立所新学校 
 *  考虑到学生上学安全问题,需要所有学生家到学校的距离最短. 
 *  假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置, 
 *  能使得到学校到各个学生家的距离和最短
 *  输入描述 
 *      第一行:整数n取值范围[1,1000],表示有n户家庭。 
 *      第二行:一组整数m取值范围[0,10000]，表示每户家庭的位置，所有家庭的位置都不相同。
 *输出描述 一个整数,确定的学校的位置，如果有多个位置,则输出最小的。
 * 示例一 输入 
 *  5 0 20 40 10 30
 *  输出
 *  20
 * 
 */
public class Main01 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        List<Integer> collect = Arrays.asList(scanner.nextLine().split(" ")).stream().filter(vo -> !"".equals(vo)).map(Integer::parseInt).collect(Collectors.toList());
        Collections.sort(collect);
        int localCount = Integer.MAX_VALUE;
        int local = 0;
        for (int i = 0; i < collect.size(); i++) {
            Integer integer = collect.get(i);
            int check = checkLocal(integer,i,collect);
            if (check < localCount){
                localCount = check;
                local = integer;
            }
        }
        System.out.println(local);
    }

    private static int checkLocal(Integer integer, int index, List<Integer> collect) {
        int count = 0;
        if (index == collect.size()) {
            for (int i = 0; i < index; i++) {
                count += integer - collect.get(i);
            }
            return count;
        }
        for (int i = 0; i < index; i++) {
            count += integer - collect.get(i);
        }
        for (int i = index +1; i < collect.size(); i++) {
            count+= collect.get(i) - integer;
        }
        return count;
    }

}
